# 缺省参数
def priont_info(name, gender=True):
    gender_text = "男生"
    if not gender:
        gender_text = "女生"
        print("%s 是 %s" % (name, gender_text))

priont_info("张三", False)
priont_info("张三")

def print_info(name, title="", gender=True):
    """
    :param title: 职位
    :param name: 班上同学的姓名
    :param gender: True 男生 False 女生
    """
    gender_text = "男生"
    if not gender:
        gender_text = "女生"
        print("%s%s 是 %s" % (title, name, gender_text))

# 提示： 在指定缺省参数的默认值时， 应该使用最常见的值作为默认值！
print_info("小明")
print_info("老王", title="班长") # "key=word"传参
print_info("小美", gender=False)

print('-' * 50)

def demo1(num1, *args, **kwargs):
    print(num1)
    print(args)
    print(kwargs)

def demo(num, *args, **kwargs):
    # 可变参数(多值参数)
    print(num)
    print(args) # 所有的位置参数
    print(kwargs)   #  所有的关键字参数
    print('-' * 50)
    demo1(*args, **kwargs)  # 拆包, *表示元组拆包, **表示字典拆包
demo(1, 2, 3, 4, 5, name="小明", age=18, gender=True)